home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Environments / SmallEiffel 0.3.3 / SmallEiffel PPC / lib_show / parking / command.e next >
Encoding:
Text File  |  1996-06-13  |  2.4 KB  |  131 lines  |  [TEXT/EDIT]

  1. -- Part of SmallEiffel -- Read DISCLAIMER file -- Copyright (C) 
  2. -- Dominique COLNET and Suzanne COLLIN -- colnet@loria.fr
  3. --
  4. class COMMAND
  5. --
  6. -- Separate Handling of Keyboard Input.
  7. -- 
  8.    
  9. creation {ANY}
  10.    make
  11.  
  12. feature {ANY}
  13.    
  14.    arrival: BOOLEAN is 
  15.       do 
  16.      Result := (code = c_arrival) 
  17.       end;
  18.    
  19.    departure: BOOLEAN is 
  20.       do 
  21.      Result := (code = c_departure) 
  22.       end;
  23.    
  24.    level_count: BOOLEAN is
  25.       do 
  26.      Result := (code = c_level_count) 
  27.       end;
  28.    
  29.    hour_price: BOOLEAN is
  30.      do 
  31.      Result := (code = c_hour_price) 
  32.       end;
  33.    
  34.    add_time: BOOLEAN is
  35.      do 
  36.      Result := (code = c_add_time) 
  37.       end;
  38.    
  39.    clock: BOOLEAN is
  40.      do 
  41.      Result := (code = c_clock) 
  42.       end;
  43.    
  44.    quit: BOOLEAN is
  45.       do 
  46.      Result := (code = c_quit) 
  47.       end;
  48.    
  49.    help: BOOLEAN is
  50.       do 
  51.      Result := (code = c_help) 
  52.       end;
  53.    
  54.    arg_real: REAL is
  55.       do
  56.      Result := cmd.to_real;
  57.       end;
  58.       
  59.    arg_integer: INTEGER is
  60.       do
  61.      Result := cmd.to_integer;
  62.       end;
  63.    
  64.    count: BOOLEAN is
  65.       do 
  66.      Result := (code = c_count) 
  67.       end;
  68.    
  69. feature {ANY} -- Modifications :
  70.    
  71.    make is
  72.       do
  73.       end;
  74.  
  75.    get_command(sio: STD_INPUT_OUTPUT) is
  76.       require
  77.      sio /= Void;
  78.       local
  79.      stop: BOOLEAN;
  80.       do
  81.      sio.read_line;
  82.      cmd := sio.last_string;
  83.      from  
  84.         code := ' ';
  85.         stop := (cmd.count < 1);
  86.      until
  87.         stop
  88.      loop
  89.         code := cmd @ 1;
  90.         cmd.remove(1);
  91.         stop := ((code /= ' ') and (code /= '%T')) or (cmd.count < 1)
  92.      end;
  93.       end; -- get_command
  94.    
  95.    print_help_on(sio: STD_INPUT_OUTPUT) is
  96.       require
  97.      sio /= Void;
  98.       do
  99.      sio.put_string(" Commands :N%
  100.              % -------------------%N%
  101.              % q        Quit%N%
  102.              % a        Arrival of a car%N%
  103.              % d <i>    Departure of car number <i>%N%
  104.              % l <i>    number of car at Level <i>%N%
  105.              % h <x>    set Hour price with <x>%N%
  106.              % c        total Count of cars%N%
  107.              % t <i>    add Time <i> minutes%N%
  108.              % T        current Time%N%
  109.              % ?        help%N");
  110.       end;
  111.          
  112. feature {COMMAND}
  113.    
  114.    c_arrival : CHARACTER is 'a';
  115.    c_departure : CHARACTER is 'd';
  116.    c_level_count : CHARACTER is 'l';
  117.    c_hour_price : CHARACTER is 'h';
  118.    c_add_time : CHARACTER is 't';
  119.    c_clock : CHARACTER is 'T';
  120.    c_quit : CHARACTER is 'q';
  121.    c_count : CHARACTER is 'c';
  122.    c_help : CHARACTER is '?';
  123.    
  124.    code : CHARACTER; 
  125.    
  126. feature {NONE}
  127.    
  128.    cmd: STRING;
  129.    
  130. end -- class COMMAND
  131.